from pymongo import MongoClient
import 发牌写入数据
import 获取牌
import 验证其它三位用户登录
import 出牌顺序

def user_login(username, password):
    # 连接到MongoDB
    client = MongoClient("mongodb://192.168.168.110:27017/")
    
    # 选择数据库
    db = client['data']
    
    # 查询用户
    user = db.user.find_one({"name": username, "password": password})

    # 检查用户是否已经登录
    if user:
        if user.get("is_logged_in"):  # 检查登录状态
            client.close()
            return False  # 用户已登录
        
        # 更新用户登录状态
        db.user.update_one({"name": username}, {"$set": {"is_logged_in": True}})
        client.close()
        return True  # 登录成功
    else:
        client.close()
        return False  # 登录失败

def user_logout(username):
    # 连接到MongoDB
    client = MongoClient("mongodb://192.168.168.110:27017/")
    
    # 选择数据库
    db = client['data']
    
    # 更新用户登录状态为未登录
    db.user.update_one({"name": username}, {"$set": {"is_logged_in": False}})
    
    client.close()

def user_login2(username, password):
    if user_login(username, password):  # 检查用户登录
        print("登录成功！")
        验证其它三位用户登录.check_logged_in_users()
        发牌写入数据
        获取牌.user_gain(username)
        出牌顺序.insert_and_query_random_sequences(username)
        # 用户可以在此进行其他操作
        # 登录后可以调用 logout 进行登出
        user_logout(username)  # 这只是示例，实际使用时可在需要时调用
    else:
        print("用户名或密码错误，或用户已登录。")

# 主程序
if __name__ == "__main__":
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    user_login2(username, password)
